﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyHocPhi.BLL;

namespace QuanLyHocPhi.GUI
{
    public partial class FormLoaiHinh_Details : Form
    {
        private Model.LoaiHinhDaoTao m_LoaiHinhDaoTao;
        public Model.LoaiHinhDaoTao LoaiHinhDaoTao
        {
            get { return m_LoaiHinhDaoTao; }
            set
            {
                m_LoaiHinhDaoTao = value;
                DisplayObject();
            }
        }

        public bool IsAdding { get; private set; }
        public FormLoaiHinh_Details(bool isAdding, Model.LoaiHinhDaoTao x)
        {
            InitializeComponent();
            this.IsAdding = isAdding;
            this.LoaiHinhDaoTao = x;
            if (this.IsAdding)
            {
                txtMaLoaiHinh.Enabled = true;
                txtMaLoaiHinh.Focus();
            }
            else
            {
                txtMaLoaiHinh.Enabled = false;
                txtTenLoaiHinh.Focus();
            }
        }

        private void DisplayObject()
        {
            txtMaLoaiHinh.Text = LoaiHinhDaoTao.MaLoaiHinh;
            txtTenLoaiHinh.Text = LoaiHinhDaoTao.TenLoaiHinh;
        }

        private void OnOKClick(object sender, EventArgs e)
        {
            #region Kiểm tra tính hợp lệ của dữ liệu
            var hasError = false;
            epMain.Clear();
            var maLoaiHinh = txtMaLoaiHinh.Text.Trim();
            if (maLoaiHinh.IsNullOrEmpty())
            {
                epMain.SetError(txtMaLoaiHinh, "Không được bỏ trống mã loại hình đào tạo");
                hasError = true;
            }
            var tenLoaiHinh = txtTenLoaiHinh.Text.Trim();
            if (tenLoaiHinh.IsNullOrEmpty())
            {
                epMain.SetError(txtTenLoaiHinh, "Không được bỏ trống tên loại hình đào tạo");
                hasError = true;
            }
            #endregion

            if (hasError)
                return;

            try
            {
                if (this.IsAdding)
                    BLL.BizLoaiHinhDaoTao.AddNew(maLoaiHinh, tenLoaiHinh);
                else
                    BLL.BizLoaiHinhDaoTao.Update(maLoaiHinh, tenLoaiHinh);
                
                this.LoaiHinhDaoTao.MaLoaiHinh = maLoaiHinh;
                this.LoaiHinhDaoTao.TenLoaiHinh = tenLoaiHinh;
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            catch (Exception exc)
            {
                DialogUtils.ShowError(exc.Message);
            }
        }

        private void OnLoad(object sender, EventArgs e)
        {
        }

        private void OnTenLoaiHinhKeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Enter)
            {
                e.SuppressKeyPress = true;
                e.Handled = true;
                btnOK.PerformClick();
            }
        }

        private void OnMaLoaiHinhKeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Enter)
            {
                e.SuppressKeyPress = true;
                e.Handled = true;
                txtTenLoaiHinh.Focus();
            }
        }
    }
}
